Extract a function for getting resolved packages from a registry
authorCarol (Nichols || Goulding) <carol.nichols@gmail.com>
Sun, 20 Sep 2015 00:41:40 +0000 (20:41 -0400)
committerCarol (Nichols || Goulding) <carol.nichols@gmail.com>
Sun, 20 Sep 2015 03:24:22 +0000 (23:24 -0400)
This code was happening in both cargo fetch and cargo compile and had a
slightly different error message in each ;)

src/cargo/ops/cargo_compile.rs
src/cargo/ops/cargo_fetch.rs
src/cargo/ops/mod.rs

index e9191304417694e48ae98d13284f847f9e4905ba..80e380fb2d5cb75a26ddd5ca08eccf0ab5a3635a 100644 (file)
@@ -28,7 +28,7 @@ use std::path::{Path, PathBuf};
 use std::sync::Arc;
 
 use core::registry::PackageRegistry;
-use core::{Source, SourceId, PackageSet, Package, Target, PackageId};
+use core::{Source, SourceId, PackageSet, Package, Target};
 use core::{Profile, TargetKind};
 use core::resolver::Method;
 use ops::{self, BuildOutput, ExecEngine};
@@ -142,12 +142,7 @@ pub fn compile_pkg<'a>(package: &Package,
                 try!(ops::resolve_with_previous(&mut registry, package, method,
                                                 Some(&resolve), None));
 
-        let req: Vec<PackageId> = resolved_with_overrides.iter().map(|r| {
-            r.clone()
-        }).collect();
-        let packages = try!(registry.get(&req).chain_error(|| {
-            human("Unable to get packages from source")
-        }));
+        let packages = try!(ops::get_resolved_packages(&resolved_with_overrides, &mut registry));
 
         (packages, resolved_with_overrides, registry.move_sources())
     };
index 612d88c05ada4f37f3b2b389e7a2d6b497da52f9..b1e5c213f56492a2f7c9d7f9bacf38193921a9d1 100644 (file)
@@ -1,7 +1,7 @@
 use std::path::Path;
 
 use core::registry::PackageRegistry;
-use core::{Package, PackageId};
+use core::{Package, PackageId, Resolve};
 use ops;
 use util::{CargoResult, Config, human, ChainError};
 
@@ -10,10 +10,14 @@ pub fn fetch(manifest_path: &Path, config: &Config) -> CargoResult<()> {
     let package = try!(Package::for_path(manifest_path, config));
     let mut registry = PackageRegistry::new(config);
     let resolve = try!(ops::resolve_pkg(&mut registry, &package));
+    let _ = get_resolved_packages(&resolve, &mut registry);
+    Ok(())
+}
 
+pub fn get_resolved_packages(resolve: &Resolve, registry: &mut PackageRegistry)
+                             -> CargoResult<Vec<Package>> {
     let ids: Vec<PackageId> = resolve.iter().cloned().collect();
-    try!(registry.get(&ids).chain_error(|| {
-        human("unable to get packages from source")
-    }));
-    Ok(())
+    registry.get(&ids).chain_error(|| {
+        human("Unable to get packages from source")
+    })
 }
index 545187a98df95ae243d6d804122eb52f62bfb14c..e5736071eb76376dcf3466b1f2f9d8ee8204cc35 100644 (file)
@@ -20,7 +20,7 @@ pub use self::cargo_package::package;
 pub use self::registry::{publish, registry_configuration, RegistryConfig};
 pub use self::registry::{registry_login, search, http_proxy_exists, http_handle};
 pub use self::registry::{modify_owners, yank, OwnersOptions};
-pub use self::cargo_fetch::{fetch};
+pub use self::cargo_fetch::{fetch, get_resolved_packages};
 pub use self::cargo_pkgid::pkgid;
 pub use self::resolve::{resolve_pkg, resolve_with_previous};